昨天談完二元樹的結構、三大定理、種類,今天要進入的部分就是我們要使用甚麼資料結構去實作這個 ADT,以及使用這些資料結構的優缺點再進入 Traversal 的演算法撰寫部分
在實作二元樹的部分,主要我們可以區分為使用 Array 或是 LinkedList 去實作,而利用這兩種資料結構去實作,都會有各自不同的優缺點,以下我們先談實作方法,再談優缺點
在寫 BT Traversal 前,要先知道 preorder 的順序為 DLR、inorder 的順序為 LDR、Postorder 的順序為 LRD
(Tips) D 放在某種序的相對應位置即可 e.g 前序 D 就放最前面
preorder(t){ //DLR
print(t->data);
preorder(t->lchild);
preorder(t->rchild);
}
inorder(t){ //LDR
inorder(t->lchild);
print(t->data);
inorder(t->rchild);
}
postorder(t){ //LRD
postorder(t->lchild);
postorder(t->rchild);
print(t->data);
}